(function($) {
	function drag(e) {
		var opts = $.data(e.data.target, 'draggable').options;
		var dragData = e.data;
		var left = dragData.startLeft + e.pageX - dragData.startX;
		var top = dragData.startTop + e.pageY - dragData.startY;
		if (opts.deltaX != null && opts.deltaX != undefined) {
			left = e.pageX + opts.deltaX;
		}
		if (opts.deltaY != null && opts.deltaY != undefined) {
			top = e.pageY + opts.deltaY;
		}
		if (e.data.parnet != document.body) {
			if ($.boxModel == true) {
				left += $(e.data.parent).scrollLeft();
				top += $(e.data.parent).scrollTop();
			}
		}
		if (opts.axis == 'h') {
			dragData.left = left;
		} else {
			if (opts.axis == 'v') {
				dragData.top = top;
			} else {
				dragData.left = left;
				dragData.top = top;
			}
		}
	};
	function applyDrag(e) {
		var opts = $.data(e.data.target, 'draggable').options;
		var proxy = $.data(e.data.target, 'draggable').proxy;
		if (proxy) {
			proxy.css('cursor', opts.cursor);
		} else {
			proxy = $(e.data.target);
			$.data(e.data.target, 'draggable').handle.css('cursor', opts.cursor);
		}
		proxy.css({
					left : e.data.left,
					top : e.data.top
				});
	};
	function doDown(e) {
		var opts = $.data(e.data.target, 'draggable').options;
		var droppables = $('.droppable').filter(function() {
					return e.data.target != this;
				}).filter(function() {
					var accept = $.data(this, 'droppable').options.accept;
					if (accept) {
						return $(accept).filter(function() {
									return this == e.data.target;
								}).length > 0;
					} else {
						return true;
					}
				});
		$.data(e.data.target, 'draggable').droppables = droppables;
		var proxy = $.data(e.data.target, 'draggable').proxy;
		if (!proxy) {
			if (opts.proxy) {
				if (opts.proxy == 'clone') {
					proxy = $(e.data.target).clone().insertAfter(e.data.target);
				} else {
					proxy = opts.proxy.call(e.data.target, e.data.target);
				}
				$.data(e.data.target, 'draggable').proxy = proxy;
			} else {
				proxy = $(e.data.target);
			}
		}
		proxy.css('position', 'absolute');
		drag(e);
		applyDrag(e);
		opts.onStartDrag.call(e.data.target, e);
		return false;
	};
	function doMove(e) {
		drag(e);
		if ($.data(e.data.target, 'draggable').options.onDrag.call(
				e.data.target, e) != false) {
			applyDrag(e);
		}
		var source = e.data.target;
		$.data(e.data.target, 'draggable').droppables.each(function() {
			var dropObj = $(this);
			var p2 = $(this).offset();
			if (e.pageX > p2.left && e.pageX < p2.left + dropObj.outerWidth()
					&& e.pageY > p2.top && e.pageY < p2.top + dropObj.outerHeight()) {
				if (!this.entered) {
					$(this).trigger('_dragenter', [source]);
					this.entered = true;
				}
				$(this).trigger('_dragover', [source]);
			} else {
				if (this.entered) {
					$(this).trigger('_dragleave', [source]);
					this.entered = false;
				}
			}
		});
		return false;
	};
	function doUp(e) {
		drag(e);
		var proxy = $.data(e.data.target, 'draggable').proxy;
		var opts = $.data(e.data.target, 'draggable').options;
		if (opts.revert) {
			if (checkDrop() == true) {
				removeProxy();
				$(e.data.target).css({
							position : e.data.startPosition,
							left : e.data.startLeft,
							top : e.data.startTop
						});
			} else {
				if (proxy) {
					proxy.animate({
								left : e.data.startLeft,
								top : e.data.startTop
							}, function() {
								removeProxy();
							});
				} else {
					$(e.data.target).animate({
								left : e.data.startLeft,
								top : e.data.startTop
							}, function() {
								$(e.data.target).css('position',
										e.data.startPosition);
							});
				}
			}
		} else {
			$(e.data.target).css({
						position : 'absolute',
						left : e.data.left,
						top : e.data.top
					});
			removeProxy();
			checkDrop();
		}
		opts.onStopDrag.call(e.data.target, e);
		function removeProxy() {
			if (proxy) {
				proxy.remove();
			}
			$.data(e.data.target, 'draggable').proxy = null;
		};
		function checkDrop() {
			var dropped = false;
			$.data(e.data.target, 'draggable').droppables.each(function() {
						var dropObj = $(this);
						var p2 = $(this).offset();
						if (e.pageX > p2.left
								&& e.pageX < p2.left + dropObj.outerWidth()
								&& e.pageY > p2.top
								&& e.pageY < p2.top + dropObj.outerHeight()) {
							if (opts.revert) {
								$(e.data.target).css({
											position : e.data.startPosition,
											left : e.data.startLeft,
											top : e.data.startTop
										});
							}
							$(this).trigger('_drop', [e.data.target]);
							dropped = true;
							this.entered = false;
						}
					});
			return dropped;
		};
		$(document).unbind('.draggable');
		return false;
	};
	$.fn.draggable = function(options, param) {
		if (typeof options == 'string') {
			return $.fn.draggable.methods[options](this, param);
		}
		return this.each(function() {
					var opts;
					var state = $.data(this, 'draggable');
					if (state) {
						state.handle.unbind('.draggable');
						opts = $.extend(state.options, options);
					} else {
						opts = $.extend({}, $.fn.draggable.defaults, options || {});
					}
					if (opts.disabled == true) {
						$(this).css('cursor', 'default');
						return;
					}
					var handle = null;
					if (typeof opts.handle == 'undefined' || opts.handle == null) {
						handle = $(this);
					} else {
						handle = (typeof opts.handle == 'string' ? $(opts.handle,
								this) : handle);
					}
					$.data(this, 'draggable', {
								options : opts,
								handle : handle
							});
					handle.bind('mousedown.draggable', {
								target : this
							}, onMouseDown);
					handle.bind('mousemove.draggable', {
								target : this
							}, onMouseMove);
					function onMouseDown(e) {
						if (checkArea(e) == false) {
							return;
						}
						var position = $(e.data.target).position();
						var data = {
							startPosition : $(e.data.target).css('position'),
							startLeft : position.left,
							startTop : position.top,
							left : position.left,
							top : position.top,
							startX : e.pageX,
							startY : e.pageY,
							target : e.data.target,
							parent : $(e.data.target).parent()[0]
						};
						if(opts.onBeforeDrag.call(e.data.target,e)==false){
							return;
						}
						$(document).bind('mousedown.draggable', data, doDown);
						$(document).bind('mousemove.draggable', data, doMove);
						$(document).bind('mouseup.draggable', data, doUp);
					};
					function onMouseMove(e) {
						if (checkArea(e)) {
							$(this).css('cursor', opts.cursor);
						} else {
							$(this).css('cursor', 'default');
						}
					};
					function checkArea(e) {
						var offset = $(handle).offset();
						var width = $(handle).outerWidth();
						var height = $(handle).outerHeight();
						var t = e.pageY - offset.top;
						var r = offset.left + width - e.pageX;
						var b = offset.top + height - e.pageY;
						var l = e.pageX - offset.left;
						return Math.min(t, r, b, l) > opts.edge;
					};
				});
	};
	$.fn.draggable.methods = {
		options : function(jq) {
			return $.data(jq[0], 'draggable').options;
		},
		proxy : function(jq) {
			return $.data(jq[0], 'draggable').proxy;
		},
		enable : function(jq) {
			return jq.each(function() {
						$(this).draggable({
									disabled : false
								});
					});
		},
		disable : function(jq) {
			return jq.each(function() {
						$(this).draggable({
									disabled : true
								});
					});
		}
	};
	$.fn.draggable.defaults = {
		proxy : null,
		revert : false,
		cursor : 'move',
		deltaX : null,
		deltaY : null,
		handle : null,
		disabled : false,
		edge : 0,
		axis : null,
		onBeforeDrag:function(e){
		},
		onStartDrag : function(e) {
		},
		onDrag : function(e) {
		},
		onStopDrag : function(e) {
		}
	};
})(jQuery);

/**
 * panel 
 */
(function($) {
	function removeNode(node) {
		node.each(function() {
					$(this).remove();
					if ($.browser.msie) {
						this.outerHTML = '';
					}
				});
	};
	function setSize(target, param) {
		var opts = $.data(target, 'panel').options;
		var panel = $.data(target, 'panel').panel;
		var pheader = panel.children('div.panel-header');
		var pbody = panel.children('div.panel-body');
		if (param) {
			if (param.width) {
				opts.width = param.width;
			}
			if (param.height) {
				opts.height = param.height;
			}
			if (param.left != null) {
				opts.left = param.left;
			}
			if (param.top != null) {
				opts.top = param.top;
			}
		}
		if (opts.fit == true) {
			var p = panel.parent();
			opts.width = p.width();
			opts.height = p.height();
		}
		panel.css({
					left : opts.left,
					top : opts.top
				});
		if (!isNaN(opts.width)) {
			if ($.boxModel == true) {
				panel.width(opts.width - (panel.outerWidth() - panel.width()));
			} else {
				panel.width(opts.width);
			}
		} else {
			panel.width('auto');
		}
		if ($.boxModel == true) {
			pheader.width(panel.width() - (pheader.outerWidth() - pheader.width()));
			pbody.width(panel.width() - (pbody.outerWidth() - pbody.width()));
		} else {
			pheader.width(panel.width());
			pbody.width(panel.width());
		}
		if (!isNaN(opts.height)) {
			if ($.boxModel == true) {
				panel.height(opts.height - (panel.outerHeight() - panel.height()));
				pbody.height(panel.height() - pheader.outerHeight()
						- (pbody.outerHeight() - pbody.height()));
			} else {
				panel.height(opts.height);
				pbody.height(panel.height() - pheader.outerHeight());
			}
		} else {
			pbody.height('auto');
		}
		panel.css('height', '');
		opts.onResize.apply(target, [opts.width, opts.height]);
		panel.find('>div.panel-body>div').triggerHandler('_resize');
	};
	function movePanel(target, param) {
		var opts = $.data(target, 'panel').options;
		var panel = $.data(target, 'panel').panel;
		if (param) {
			if (param.left != null) {
				opts.left = param.left;
			}
			if (param.top != null) {
				opts.top = param.top;
			}
		}
		panel.css({
					left : opts.left,
					top : opts.top
				});
		opts.onMove.apply(target, [opts.left, opts.top]);
	};
	function wrapPanel(target) {
		var panel = $(target).addClass('panel-body')
				.wrap('<div class="panel"></div>').parent();
		panel.bind('_resize', function() {
					var opts = $.data(target, 'panel').options;
					if (opts.fit == true) {
						setSize(target);
					}
					return false;
				});
		return panel;
	};
	function addHeader(target) {
		var opts = $.data(target, 'panel').options;
		var panel = $.data(target, 'panel').panel;
		removeNode(panel.find('>div.panel-header'));
		if (opts.title && !opts.noheader) {
			var header = $('<div class="panel-header"><div class="panel-title">'
					+ opts.title + '</div></div>').prependTo(panel);
			if (opts.iconCls) {
				header.find('.panel-title').addClass('panel-with-icon');
				$('<div class="panel-icon"></div>').addClass(opts.iconCls)
						.appendTo(header);
			}
			var tool = $('<div class="panel-tool"></div>').appendTo(header);
			if (opts.closable) {
				$('<div class="panel-tool-close"></div>').appendTo(tool).bind(
						'click', onClose);
			}
			if (opts.maximizable) {
				$('<div class="panel-tool-max"></div>').appendTo(tool).bind(
						'click', onMax);
			}
			if (opts.minimizable) {
				$('<div class="panel-tool-min"></div>').appendTo(tool).bind(
						'click', onMin);
			}
			if (opts.collapsible) {
				$('<div class="panel-tool-collapse"></div>').appendTo(tool)
						.bind('click', onToggle);
			}
			if (opts.tools) {
				for (var i = opts.tools.length - 1; i >= 0; i--) {
					var t = $('<div></div>').addClass(opts.tools[i].iconCls)
							.appendTo(tool);
					if (opts.tools[i].handler) {
						t.bind('click', eval(opts.tools[i].handler));
					}
				}
			}
			tool.find('div').hover(function() {
						$(this).addClass('panel-tool-over');
					}, function() {
						$(this).removeClass('panel-tool-over');
					});
			panel.find('>div.panel-body').removeClass('panel-body-noheader');
		} else {
			panel.find('>div.panel-body').addClass('panel-body-noheader');
		}
		function onToggle() {
			if (opts.collapsed == true) {
				expandPanel(target, true);
			} else {
				collapsePanel(target, true);
			}
			return false;
		};
		function onMin() {
			minimizePanel(target);
			return false;
		};
		function onMax() {
			if (opts.maximized == true) {
				restorePanel(target);
			} else {
				maximizePanel(target);
			}
			return false;
		};
		function onClose() {
			closePanel(target);
			return false;
		};
	};
	function loadData(target) {
		var state = $.data(target, 'panel');
		if (state.options.href && (!state.isLoaded || !state.options.cache)) {
			state.isLoaded = false;
			var pbody = state.panel.find('>div.panel-body');
			if(state.options.loadingMessage){
				pbody.html($('<div class="panel-loading"></div>')
						.html(state.options.loadingMessage));
			}
			$.ajax({
						url : state.options.href,
						cache : false,
						success : function(data) {
							pbody.html(state.options.extractor.call(target,data));
							pbody.html(data);
							if ($.parser) {
								$.parser.parse(pbody);
							}
							state.options.onLoad.apply(target, arguments);
							state.isLoaded = true;
						}
					});
		}
	};
	function init(target) {
		$(target)
				.find('div.panel:visible,div.accordion:visible,div.tabs-container:visible,div.layout:visible')
				.each(function() {
							$(this).triggerHandler('_resize', [true]);
						});
	};
	function openPanel(target, forceOpen) {
		var opts = $.data(target, 'panel').options;
		var panel = $.data(target, 'panel').panel;
		if (forceOpen != true) {
			if (opts.onBeforeOpen.call(target) == false) {
				return;
			}
		}
		panel.show();
		opts.closed = false;
		opts.minimized = false;
		opts.onOpen.call(target);
		if (opts.maximized == true) {
			opts.maximized = false;
			maximizePanel(target);
		}
		if (opts.collapsed == true) {
			opts.collapsed = false;
			collapsePanel(target);
		}
		if (!opts.collapsed) {
			loadData(target);
			init(target);
		}
	};
	function closePanel(target, forceClose) {
		var opts = $.data(target, 'panel').options;
		var panel = $.data(target, 'panel').panel;
		if (forceClose != true) {
			if (opts.onBeforeClose.call(target) == false) {
				return;
			}
		}
		panel.hide();
		opts.closed = true;
		opts.onClose.call(target);
	};
	function destroyPanel(target, forceDestroy) {
		var opts = $.data(target, 'panel').options;
		var panel = $.data(target, 'panel').panel;
		if (forceDestroy != true) {
			if (opts.onBeforeDestroy.call(target) == false) {
				return;
			}
		}
		removeNode(panel);
		opts.onDestroy.call(target);
	};
	function collapsePanel(target, forceDestroy) {
		var opts = $.data(target, 'panel').options;
		var panel = $.data(target, 'panel').panel;
		var body = panel.children('div.panel-body');
		var tool = panel.children('div.panel-header')
				.find('div.panel-tool-collapse');
		if (opts.collapsed == true) {
			return;
		}
		body.stop(true, true);
		if (opts.onBeforeCollapse.call(target) == false) {
			return;
		}
		tool.addClass('panel-tool-expand');
		if (forceDestroy == true) {
			body.slideUp('normal', function() {
						opts.collapsed = true;
						opts.onCollapse.call(target);
					});
		} else {
			body.hide();
			opts.collapsed = true;
			opts.onCollapse.call(target);
		}
	};
	function expandPanel(target, animate) {
		var opts = $.data(target, 'panel').options;
		var panel = $.data(target, 'panel').panel;
		var body = panel.children('div.panel-body');
		var tool = panel.children('div.panel-header')
				.find('div.panel-tool-collapse');
		if (opts.collapsed == false) {
			return;
		}
		body.stop(true, true);
		if (opts.onBeforeExpand.call(target) == false) {
			return;
		}
		tool.removeClass('panel-tool-expand');
		if (animate == true) {
			body.slideDown('normal', function() {
						opts.collapsed = false;
						opts.onExpand.call(target);
						loadData(target);
						init(target);
					});
		} else {
			body.show();
			opts.collapsed = false;
			opts.onExpand.call(target);
			loadData(target);
			init(target);
		}
	};
	function maximizePanel(target) {
		var opts = $.data(target, 'panel').options;
		var panel = $.data(target, 'panel').panel;
		var tool = panel.children('div.panel-header').find('div.panel-tool-max');
		if (opts.maximized == true) {
			return;
		}
		tool.addClass('panel-tool-restore');
		$.data(target, 'panel').original = {
			width : opts.width,
			height : opts.height,
			left : opts.left,
			top : opts.top,
			fit : opts.fit
		};
		opts.left = 0;
		opts.top = 0;
		opts.fit = true;
		setSize(target);
		opts.minimized = false;
		opts.maximized = true;
		opts.onMaximize.call(target);
	};
	function minimizePanel(target) {
		var opts = $.data(target, 'panel').options;
		var panel = $.data(target, 'panel').panel;
		panel.hide();
		opts.minimized = true;
		opts.maximized = false;
		opts.onMinimize.call(target);
	};
	function restorePanel(target) {
		var opts = $.data(target, 'panel').options;
		var panel = $.data(target, 'panel').panel;
		var tool = panel.children('div.panel-header').find('div.panel-tool-max');
		if (opts.maximized == false) {
			return;
		}
		panel.show();
		tool.removeClass('panel-tool-restore');
		var original = $.data(target, 'panel').original;
		opts.width = original.width;
		opts.height = original.height;
		opts.left = original.left;
		opts.top = original.top;
		opts.fit = original.fit;
		setSize(target);
		opts.minimized = false;
		opts.maximized = false;
		opts.onRestore.call(target);
	};
	function setBorder(target) {
		var opts = $.data(target, 'panel').options;
		var panel = $.data(target, 'panel').panel;
		if (opts.border == true) {
			panel.children('div.panel-header')
					.removeClass('panel-header-noborder');
			panel.children('div.panel-body').removeClass('panel-body-noborder');
		} else {
			panel.children('div.panel-header').addClass('panel-header-noborder');
			panel.children('div.panel-body').addClass('panel-body-noborder');
		}
		panel.css(opts.style);
		panel.addClass(opts.cls);
		panel.children('div.panel-header').addClass(opts.headerCls);
		panel.children('div.panel-body').addClass(opts.bodyCls);
	};
	function setTitle(target, title) {
		$.data(target, 'panel').options.title = title;
		$(target).panel('header').find('div.panel-title').html(title);
	};
	var TO = false;
	var resized = true;
	$(window).unbind('.panel').bind('resize.panel', function() {
				if (!resized) {
					return;
				}
				if (TO !== false) {
					clearTimeout(TO);
				}
				TO = setTimeout(function() {
							resized = false;
							var layout = $('body.layout');
							if (layout.length) {
								layout.layout('resize');
							} else {
								$('body').children('div.panel,div.accordion,div.tabs-container,div.layout').triggerHandler('_resize');
							}
							resized = true;
							TO = false;
						}, 200);
			});
	$.fn.panel = function(options, param) {
		if (typeof options == 'string') {
			return $.fn.panel.methods[options](this, param);
		}
		options = options || {};
		return this.each(function() {
					var state = $.data(this, 'panel');
					var opts;
					if (state) {
						opts = $.extend(state.options, options);
					} else {
						opts = $.extend({}, $.fn.panel.defaults, $.fn.panel
										.parseOptions(this), options);
						$(this).attr('title', '');
						state = $.data(this, 'panel', {
									options : opts,
									panel : wrapPanel(this),
									isLoaded : false
								});
					}
					if (opts.content) {
						$(this).html(opts.content);
						if ($.parser) {
							$.parser.parse(this);
						}
					}
					addHeader(this);
					setBorder(this);
					if (opts.doSize == true) {
						state.panel.css('display', 'block');
						setSize(this);
					}
					if (opts.closed == true || opts.minimized == true) {
						state.panel.hide();
					} else {
						openPanel(this);
					}
				});
	};
	$.fn.panel.methods = {
		options : function(jq) {
			return $.data(jq[0], 'panel').options;
		},
		panel : function(jq) {
			return $.data(jq[0], 'panel').panel;
		},
		header : function(jq) {
			return $.data(jq[0], 'panel').panel.find('>div.panel-header');
		},
		body : function(jq) {
			return $.data(jq[0], 'panel').panel.find('>div.panel-body');
		},
		setTitle : function(jq, title) {
			return jq.each(function() {
						setTitle(this, title);
					});
		},
		open : function(jq, param) {
			return jq.each(function() {
						openPanel(this, param);
					});
		},
		close : function(jq, param) {
			return jq.each(function() {
						closePanel(this, param);
					});
		},
		destroy : function(jq, param) {
			return jq.each(function() {
						destroyPanel(this, param);
					});
		},
		refresh : function(jq, url) {
			return jq.each(function() {
						$.data(this, 'panel').isLoaded = false;
						if (url) {
							$.data(this, 'panel').options.href = url;
						}
						loadData(this);
					});
		},
		resize : function(jq, param) {
			return jq.each(function() {
						setSize(this, param);
					});
		},
		move : function(jq, param) {
			return jq.each(function() {
						movePanel(this, param);
					});
		},
		maximize : function(jq) {
			return jq.each(function() {
						maximizePanel(this);
					});
		},
		minimize : function(jq) {
			return jq.each(function() {
						minimizePanel(this);
					});
		},
		restore : function(jq) {
			return jq.each(function() {
						restorePanel(this);
					});
		},
		collapse : function(jq, param) {
			return jq.each(function() {
						collapsePanel(this, param);
					});
		},
		expand : function(jq, param) {
			return jq.each(function() {
						expandPanel(this, param);
					});
		}
	};
	$.fn.panel.parseOptions = function(target) {
		var t = $(target);
		return {
			width : (parseInt(target.style.width) || undefined),
			height : (parseInt(target.style.height) || undefined),
			left : (parseInt(target.style.left) || undefined),
			top : (parseInt(target.style.top) || undefined),
			title : (t.attr('title') || undefined),
			iconCls : (t.attr('iconCls') || t.attr('icon')),
			cls : t.attr('cls'),
			headerCls : t.attr('headerCls'),
			bodyCls : t.attr('bodyCls'),
			href : t.attr('href'),
			loadingMessage : (t.attr('loadingMessage') != undefined ? t
					.attr('loadingMessage') : undefined),
			cache : (t.attr('cache') ? t.attr('cache') == 'true' : undefined),
			fit : (t.attr('fit') ? t.attr('fit') == 'true' : undefined),
			border : (t.attr('border') ? t.attr('border') == 'true' : undefined),
			noheader : (t.attr('noheader')
					? t.attr('noheader') == 'true'
					: undefined),
			collapsible : (t.attr('collapsible')
					? t.attr('collapsible') == 'true'
					: undefined),
			minimizable : (t.attr('minimizable')
					? t.attr('minimizable') == 'true'
					: undefined),
			maximizable : (t.attr('maximizable')
					? t.attr('maximizable') == 'true'
					: undefined),
			closable : (t.attr('closable')
					? t.attr('closable') == 'true'
					: undefined),
			collapsed : (t.attr('collapsed')
					? t.attr('collapsed') == 'true'
					: undefined),
			minimized : (t.attr('minimized')
					? t.attr('minimized') == 'true'
					: undefined),
			maximized : (t.attr('maximized')
					? t.attr('maximized') == 'true'
					: undefined),
			closed : (t.attr('closed') ? t.attr('closed') == 'true' : undefined)
		};
	};
	$.fn.panel.defaults = {
		title : null,
		iconCls : null,
		width : 'auto',
		height : 'auto',
		left : null,
		top : null,
		cls : null,
		headerCls : null,
		bodyCls : null,
		style : {},
		href : null,
		cache : true,
		fit : false,
		border : true,
		doSize : true,
		noheader : false,
		content : null,
		collapsible : false,
		minimizable : false,
		maximizable : false,
		closable : false,
		collapsed : false,
		minimized : false,
		maximized : false,
		closed : false,
		tools : [],
		href : null,
		loadingMessage : 'Loading...',
		extractor : function(data) {
			var bodyRegEx = /<body[^>]*>((.|[\n\r])*)<\/body>/im;
			var found = bodyRegEx.exec(data);
			if (found) {
				return found[1];
			} else {
				return data;
			}
		},
		onLoad : function() {
		},
		onBeforeOpen : function() {
		},
		onOpen : function() {
		},
		onBeforeClose : function() {
		},
		onClose : function() {
		},
		onBeforeDestroy : function() {
		},
		onDestroy : function() {
		},
		onResize : function(width, height) {
		},
		onMove : function(left, top) {
		},
		onMaximize : function() {
		},
		onRestore : function() {
		},
		onMinimize : function() {
		},
		onBeforeCollapse : function() {
		},
		onBeforeExpand : function() {
		},
		onCollapse : function() {
		},
		onExpand : function() {
		}
	};
})(jQuery);